package br.com.beautycenter.view;

import br.com.beautycenter.Funcionalidades.Bean;
import br.com.beautycenter.Funcionalidades.Swing;
import br.com.beautycenter.Funcionalidades.Validacoes;
import br.com.beautycenter.bean.Cargo;
import br.com.beautycenter.bean.Endereco;
import br.com.beautycenter.bean.Funcionario;
import br.com.beautycenter.DAO.PersisteCargo;
import br.com.beautycenter.DAO.PersisteEndereco;
import br.com.beautycenter.DAO.PersisteFuncionario;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.swing.JOptionPane;

public class CadastroFuncionario extends javax.swing.JFrame {

    PersisteFuncionario persisteFuncionario = new PersisteFuncionario();
    PersisteEndereco persisteEndereco = new PersisteEndereco();
    PersisteCargo persisteCargo = new PersisteCargo();
    
    Funcionario funcionario = new Funcionario();
    Funcionario funcionarioTemp = new Funcionario();
    
    Endereco endereco = new Endereco();
    Endereco enderecoTemp = new Endereco();
    Cargo cargo = new Cargo();
    
    static List<Funcionario> listaFuncionarios = new ArrayList<Funcionario>(); //lista com todos os funcionários
    
    /**
     * operacao = 0 -> salvar
     * operacao = 1 -> atualizar
     * operacao = 2 -> excluir
     */
    int operacao = 0; 
    int posicao = -1;
    boolean mudouAtivo = false;
    
    /**
     * Preenche o formulário com os dados do funcionario. O parâmetro é a posição do item na lista
     * @param posicao 
     */
    public void exibirFuncionario(){
        if(listaFuncionarios.isEmpty()){
            novo();
            return;
        }
        
        limparCampos();
        
        txtCodigo.setText(String.valueOf(listaFuncionarios.get(posicao).getIdPessoa()));
        txtNome.setText(listaFuncionarios.get(posicao).getNome());
        
        //endereço
        txtEndereco.setText(listaFuncionarios.get(posicao).getEndereco().getLogradouro());
        txtNumero.setText(listaFuncionarios.get(posicao).getEndereco().getNumero());
        txtBairro.setText(listaFuncionarios.get(posicao).getEndereco().getBairro());
        txtCidade.setText(listaFuncionarios.get(posicao).getEndereco().getCidade());
        txtCEP.setText(listaFuncionarios.get(posicao).getEndereco().getCep());
        
        //dados pessoais
        if(listaFuncionarios.get(posicao).getDtNascimento() != null){
            jDateNascimento.setDate(listaFuncionarios.get(posicao).getDtNascimento());
        }else{
            jDateNascimento.setCalendar(null);
        }
        
        txtCPF.setText(listaFuncionarios.get(posicao).getCpf());
        txtRG.setText(listaFuncionarios.get(posicao).getRg());
        txtTelefoneFixo.setText(listaFuncionarios.get(posicao).getTelefoneFixo());
        txtTelefoneCelular.setText(listaFuncionarios.get(posicao).getTelefoneCelular());
        txtTelefoneComercial.setText(listaFuncionarios.get(posicao).getTelefoneComercial());
        txtEmail.setText(listaFuncionarios.get(posicao).getEmail());
        
        //dados empresariais
        txtLogin.setText(listaFuncionarios.get(posicao).getLogin());
        txtSenha.setText(listaFuncionarios.get(posicao).getSenha());
        jComboCargo.setSelectedItem(listaFuncionarios.get(posicao).getCargo().getNomeCargo());
        jComboPermissao.setSelectedItem(String.valueOf(listaFuncionarios.get(posicao).getPermissao()));
        txtSalario.setText(Validacoes.formatoMoeda.format(listaFuncionarios.get(posicao).getSalario()));
        
        if(listaFuncionarios.get(posicao).getDtAdmissao() != null){
            jDateAdmissao.setDate(listaFuncionarios.get(posicao).getDtAdmissao());
        }else{
            jDateAdmissao.setCalendar(null);
        }
        
        if(listaFuncionarios.get(posicao).getDtDemissao() != null){
            jDateDemissao.setDate(listaFuncionarios.get(posicao).getDtDemissao());
        }else{
            jDateDemissao.setDate(null);
        }

        txtObservacao.setText(listaFuncionarios.get(posicao).getObservacao());
        
        //verifica se o cliente está inativo, se estiver aparece o jlabel
        if(!listaFuncionarios.get(posicao).isAtivo()){
            jLFuncionarioDesativado.setVisible(true);
            jLCliqueAqui.setVisible(true);
        }else{
            jLFuncionarioDesativado.setVisible(false);
            jLCliqueAqui.setVisible(false);
        }
        
        desativarCampos();
    }
    
    
    /**
     * Quanto clicar em Novo ou Editar ativará os botões: <br/>
     * btnSalvar<br/>
     * btnCancelar<br/>
     * btnSair<br/>
     */
    public void ativarBotoesNovoEditarExcluir(){
        Swing.desativarCampos(jPainelBotoes.getComponents());
        btnSalvar.setEnabled(true);
        btnCancelar.setEnabled(true);
        btnSair.setEnabled(true);
    }
    
    /**
     * Inicialmente os botões ativos serão: <br/>
     * btnNovo<br/>
     * btnEditar<br/>
     * btnPesquisar<br/>
     * btnSair<br/>
     */
    public void ativarBotoesIniciar(){
        Swing.desativarCampos(jPainelBotoes.getComponents());
        
        //se a lista estiver vazia, cria um novo
        if(listaFuncionarios.isEmpty()){
            novo();
        }else if(posicao < 0){
            btnNovo.setEnabled(true);
            btnPesquisar.setEnabled(true);
            btnSair.setEnabled(true);
        }else {
            btnNovo.setEnabled(true);
            btnPesquisar.setEnabled(true);
            btnSair.setEnabled(true);
            btnEditar.setEnabled(true);
            btnExcluir.setEnabled(true);
        }
    }
    
    public void limparCampos(){
        Swing.zerarCampos(jPanelFuncionario.getComponents());
        Swing.zerarCampos(jPanelDados.getComponents());
        Swing.zerarCampos(jTabDados.getComponents());
        txtObservacao.setText("");
        jDateAdmissao.setDate(new Date());
    }
    
    public void preencherComboCargo(){
        jComboCargo.removeAllItems();
        jComboCargo.addItem("Selecione um cargo");
        for(Cargo item: persisteCargo.retornarCargos()){
            jComboCargo.addItem(item.getNomeCargo());
        }
    }
    
    /**
     * Inicializa a tela fazendo as seguintes operações: <br/><br/>
     * - Preenche o combo cargo.<br/>
     * - Popula a lista de funcionários com todos os funcionários.<br/>
     * - desativa todos os campos do formulário.<br/>
     * - ativa os botões (caso não tenha funcionário cadastrado o método novo() é chamado).<br/>
     * - limpa os campos.<br/>
     * - inicializa as mascaras para os campos  formatados.
     */
    public void inicializarTela(){
        preencherComboCargo();
        //inicialmente as labels devem estar invisíveis
        jLCliqueAqui.setVisible(false);
        jLFuncionarioDesativado.setVisible(false);
        
        listaFuncionarios = persisteFuncionario.retornarFuncionario();        
        desativarCampos();
        ativarBotoesIniciar();
        limparCampos();
        Validacoes.inicializarMascaras();
        zerarDatas();
    }
    
    public void zerarDatas(){
        jDateDemissao.setCalendar(null);
        jDateNascimento.setCalendar(null);
        jDateAdmissao.setCalendar(null);
    }
    
    
    /**
     * Verifica se o campo nome está vazio, com o auxílio do método trim(), que remove os espaços laterais.
     * Então, se uma pessoa colocar como nome "   ", vai constar como campo vazio.
     * 
     * @return 
     *  -true se tudo estiver ok
     * <br\>
     *  -false se o campo estiver vazio
     */
    public boolean validarNome(){
        if(!Validacoes.validarNome(txtNome.getText().trim())) {
            JOptionPane.showMessageDialog(null, "Campo nome é obrigatório!");
            txtNome.requestFocus();
            return false;
        }
        
        funcionarioTemp.setNome(txtNome.getText().trim());
        return true;
    }
    
    public boolean validarNumero(){
        if(Validacoes.validarNumero(txtNumero.getText().trim())){
            enderecoTemp.setNumero(txtNumero.getText().trim());
            return true;
        }return false;
    }
    
    /**
     * Insere os dados do endereço. Única validação de fato está no CEP.
     * @return 
     * 
     * <b>true</b> - Se o CEP estiver preenchido corretamente ou então vazio<br/>
     * <b>true</b> - Se o CEP estiver preenchido incorretamente
     */
    public boolean validarEndereco(){
        //verifica se contém alguma letra no campo número
        if(!validarNumero()) {
            return false;
        }
        
        //verifica se o cep é  válido, caso ele tenha sido preenchido
        if(!Validacoes.validarCep(txtCEP.getText())){
            return false;
        }else{
            enderecoTemp.setCep(txtCEP.getText());
        }
        enderecoTemp.setLogradouro(txtEndereco.getText().trim());
        enderecoTemp.setNumero(txtNumero.getText().trim());
        enderecoTemp.setBairro(txtBairro.getText().trim());
        enderecoTemp.setCidade(txtCidade.getText().trim());
        
        return true;
        
    }
    
    /**
     * Verifica se o campo CPF foi prenchido corretamente. Se não estiver preenchido, considera-se como se estivesse prenchido
     * incorretamente
     * @return 
     * <b>true</b> - Caso esteja preenchido corretamente<br/>
     * <b>false</b> - Caso esteja preenchido incorremente(ou vazio)
     */
    public boolean validarCpf(){
        String CPF = txtCPF.getText().replace(".", "").replace("-", "").trim();

        if(CPF.isEmpty()){
            JOptionPane.showMessageDialog(null, "Campo CPF é obrigatório!");
            txtCPF.requestFocus();
            return false;
        }else{
            
            if(!Validacoes.validarCpf(txtCPF.getText().trim(), operacao, persisteFuncionario)){
                txtCPF.requestFocus();
                return false;
            }else {
                funcionarioTemp.setCpf(txtCPF.getText().trim());
                return true;
            }
        }
    }
    
    /**
     * Verifica se o campo Login foi prenchido corretamente. 
     * Se não estiver preenchido, considera-se como se estivesse prenchido incorretamente
     * 
     * @return 
     * <b>true</b> - Caso esteja preenchido corretamente<br/>
     * <b>false</b> - Caso esteja preenchido incorremente(ou vazio)
     */
    public boolean validarLogin(){
            funcionarioTemp.setLogin(txtLogin.getText());
            if(funcionarioTemp.getLogin().isEmpty()){
                JOptionPane.showMessageDialog(null, "Campo Login é obrigatório!");
                txtLogin.requestFocus();
                return false;
            }
            
            if(operacao < 1){
                //verifica se já existe o funcionário cadastrado no banco de dados
                Funcionario aux = new Funcionario();
                aux.setLogin(funcionarioTemp.getLogin());
                aux = persisteFuncionario.retornarFuncionarioPeloLogin(aux);

                if(aux == null) return true;

                JOptionPane.showMessageDialog(null, "Login já cadastrado no sistema");
                txtLogin.requestFocus();
                return false;
            }
            return true;
    }
    
    /**
     * Verifica se o campo Telefone Fixo foi prenchido corretamente. 
     * Se não estiver preenchido, considera-se como se estivesse prenchido incorretamente
     * 
     * @return 
     * <b>true</b> - Caso esteja preenchido corretamente<br/>
     * <b>false</b> - Caso esteja preenchido incorremente(ou vazio)
     */
    public boolean validarTelefoneFixo(){
        if(Validacoes.validarTelefone(txtTelefoneFixo.getText().trim())){
            funcionarioTemp.setTelefoneFixo(txtTelefoneFixo.getText().trim());
            return true;
        }else{
            JOptionPane.showMessageDialog(null, "Telefone Fixo informado é inválido");
            txtTelefoneFixo.requestFocus();
            return false;
        }
    }
    
    /**
     * Verifica se o campo Telefone Celular foi prenchido corretamente. 
     * Se não estiver preenchido, considera-se como se estivesse prenchido incorretamente
     * 
     * @return 
     * <b>true</b> - Caso esteja preenchido corretamente<br/>
     * <b>false</b> - Caso esteja preenchido incorremente
     */
    
    public boolean validarTelefoneCelular(){
        if(Validacoes.validarTelefone(txtTelefoneCelular.getText().trim())){
            funcionarioTemp.setTelefoneCelular(txtTelefoneCelular.getText().trim());
            return true;
        }else{
            JOptionPane.showMessageDialog(null, "Celular informado é inválido");
            txtTelefoneCelular.requestFocus();
            return false;
        }
    }
    
    /**
     * Verifica se o campo Telefone Comercial foi prenchido corretamente. 
     * Se não estiver preenchido, considera-se como se estivesse prenchido incorretamente
     * 
     * @return 
     * <b>true</b> - Caso esteja preenchido corretamente<br/>
     * <b>false</b> - Caso esteja preenchido incorremente
     */
    
    public boolean validarTelefoneComercial(){
        if(Validacoes.validarTelefone(txtTelefoneComercial.getText().trim())){
            funcionarioTemp.setTelefoneComercial(txtTelefoneComercial.getText().trim());
            return true;
        }else{
            JOptionPane.showMessageDialog(null, "Telefone comercial informado é inválido");
            txtTelefoneComercial.requestFocus();
            return false;
        }
    }
    
    /**
     * Verifica se o campo Senha foi prenchido corretamente. 
     * Se não estiver preenchido, considera-se como se estivesse prenchido incorretamente
     * 
     * @return 
     * <b>true</b> - Caso esteja preenchido corretamente<br/>
     * <b>false</b> - Caso esteja preenchido incorremente(ou vazio)
     */
    public boolean validarSenha(){
        String senha = String.valueOf(txtSenha.getPassword());
        if(senha.isEmpty()){
            JOptionPane.showMessageDialog(null, "Campo senha é obrigatório!");
            txtSenha.requestFocus();
            return false;
        }
        
        //pode-se considerar em fazer uma criptografia da senha
        funcionarioTemp.setSenha(senha);
        return true;
    }
    
    /**
     * Verifica se o usuário selecionou algum cargo. 
     * @return 
     */
    public boolean validarCargo(){
        int selecionado = jComboCargo.getSelectedIndex();
        
        //se não for o primeiro, então é válido
        if(selecionado > 0){
            cargo = new Cargo();
            cargo.setNomeCargo(jComboCargo.getSelectedItem().toString());
            cargo = persisteCargo.retornarCargoPeloNome(cargo).get(0);
            
            if(cargo != null){
                funcionarioTemp.setCargo(cargo);
                return true;
            }else{
                /**
                 * Caso o cargo não esteja cadastrado no banco de dados, entrará aqui.
                 * Isso provavelmente não acontecerá, mas é bom deixar um tratamento.
                 */
                
                JOptionPane.showMessageDialog(null, "Cargo não cadastrado no sistema");
                return false;
            }
        }
        
        JOptionPane.showMessageDialog(null, "Selecione um cargo");
        jComboCargo.requestFocus();
        return false;
    }
    
    public boolean validarSalario(){
        String salario = txtSalario.getText().trim();
        if(salario.isEmpty()){
            funcionarioTemp.setSalario(0);
            return true;
        }
        
        Double salarioDouble = Validacoes.validarCampoMoeda(salario);
        if(salarioDouble != null){
            funcionarioTemp.setSalario(salarioDouble);
            return true;
        }
        
        JOptionPane.showMessageDialog(null, "Salário preenchido incorretamente!");
        txtSalario.requestFocus();
        return false;
    }
    
    public boolean validarDataNascimento(){
        if(Validacoes.validarData(jDateNascimento.getDate(), false)){
            funcionarioTemp.setDtNascimento(jDateNascimento.getDate());
            return true;
        }else{
            JOptionPane.showMessageDialog(null, "Data de nascimento não pode ser maior que a data atual.");
            jDateNascimento.requestFocus();
            return false;
        }
    }
    
    public boolean validarRegistro(){
        if(!Validacoes.validarCampoNumerico(txtRegistro.getText().trim())){
            JOptionPane.showMessageDialog(null, "O campo registro deve conter apenas números.");
            txtRegistro.requestFocus();
            return false;
        }
        else{
            funcionarioTemp.setRegistro(txtRegistro.getText().trim());
            return true;
        }
    }
    
    public void ativarCampos(){
        Swing.ativarCampos(jPanelFuncionario.getComponents());
        Swing.ativarCampos(jPanelDados.getComponents());
        Swing.ativarCampos(jTabDados.getComponents());
        txtCodigo.setEnabled(false);
        txtObservacao.setEnabled(true);
        
    }
    
    public void desativarCampos(){
        Swing.desativarCampos(jPanelFuncionario.getComponents());
        Swing.desativarCampos(jPanelDados.getComponents());
        Swing.desativarCampos(jTabDados.getComponents());
        txtObservacao.setEnabled(false);
    }
    
    public void excluir(){
        operacao = 2;
        ativarBotoesNovoEditarExcluir();
        JOptionPane.showMessageDialog(null, "Para desativar o cliente selecione a data de demissão e clique em Salvar!");
        jDateDemissao.setEnabled(true);
        jDateDemissao.setDate(new Date());
        jDateDemissao.requestFocus();
        
    }
    
    /**
     * Trava a tela e exibe o funcionário que estava antes
     */
    public void cancelar(){
        ativarBotoesIniciar();
        if(posicao < 0){
            limparCampos();
            zerarDatas();
            inicializarTela();
        }else{
            //se reativou o cliente mas cancelou, volta o ativo pra false
            if(mudouAtivo){
                listaFuncionarios.get(posicao).setAtivo(false);
                mudouAtivo = false;
            }
            
            
            posicao = -1;
            inicializarTela();
        }
        
    }
    
    /**
     * Deixa a tela preparada para a criação de um novo funcionário
     */
    
    public void novo(){
        operacao = 0;
        limparCampos(); //limpa os dados
        ativarCampos();//ativa os campos
        ativarBotoesNovoEditarExcluir();
        zerarDatas();
        
        //cria um novo funcionário
        //OBS: é ideia colocar o idPessoa(0), pois caso cadastrar mais de um usuário na mesma sessão, não vai da pau.
        funcionario = new Funcionario();
        funcionario.setIdPessoa(0);
        
        endereco = new Endereco();
        endereco.setIdEndereco(0);
        
        funcionario.setEndereco(endereco);
        
        jDateDemissao.setEnabled(false);
        txtNome.requestFocus();
        
        txtCodigo.setText(String.valueOf(persisteFuncionario.retornarMaxID()+1));
        txtCidade.setText("Santos Dumont");
        txtCEP.setText("36.240-000");
        
    }
    
    /**
     * Deixa a tela preparada para a atualização de um funcionário
     */
    public void editar(){
        operacao = 1;
        exibirFuncionario();
        ativarCampos();
        ativarBotoesNovoEditarExcluir();

        funcionario = new Funcionario();
        funcionario = listaFuncionarios.get(posicao);
        
        endereco = new Endereco();
        endereco = listaFuncionarios.get(posicao).getEndereco();
        
        funcionario.setEndereco(endereco);
        
        txtNome.requestFocus();
    }
    
    
    public boolean validarDataDemissao(){
        if(Validacoes.validarDataMaior(jDateDemissao.getDate())) return true;
        else {
            JOptionPane.showMessageDialog(null, "Data inserida é maior que a data atual!");
            jDateDemissao.requestFocus();
            return false;
        }
    }
    /**
     * Desativa o funcionário
     */
    public boolean operacaoExcluir(){
        Date demissao = jDateDemissao.getDate();
        
        if(demissao == null){
            JOptionPane.showMessageDialog(null, "Selecione a data de demissão!");
            jDateDemissao.requestFocus();
            return false;
        }else if(validarDataDemissao()){
            listaFuncionarios.get(posicao).setAtivo(false);
            listaFuncionarios.get(posicao).setDtDemissao(demissao);
            persisteFuncionario.atualizar(listaFuncionarios.get(posicao));
            listaFuncionarios = persisteFuncionario.retornarFuncionario();

            posicao = -1;
            //exibirFuncionario();
            return true;
        }else {
            return false;
        }
    }
    
    
    /**
     * Pega os dados que estão no formulário e insere no objeto funcionario
     */
    public boolean preencherFuncionario(){
        if(operacao == 2 && operacaoExcluir()){
            JOptionPane.showMessageDialog(null, "Funcionário desativado com sucesso");
            return true;
        }
        
        funcionarioTemp = new Funcionario();
        enderecoTemp = new Endereco();
        
        if(validarNome() && validarEndereco() && validarCpf() && validarDataNascimento() && 
                validarTelefoneFixo() && validarTelefoneCelular() && validarTelefoneComercial() && 
                validarLogin() && validarSenha() && validarCargo() && validarRegistro() && validarSalario()){
            
            funcionarioTemp.setEndereco(enderecoTemp);
            funcionarioTemp.setDtNascimento(jDateNascimento.getDate());
            funcionarioTemp.setRg(txtRG.getText().trim());
            funcionarioTemp.setEmail(txtEmail.getText().trim());
            funcionarioTemp.setDtAdmissao(jDateAdmissao.getDate());
            funcionarioTemp.setPermissao(jComboPermissao.getSelectedIndex()+1);
            funcionarioTemp.setObservacao(txtObservacao.getText().trim());
            funcionarioTemp.setAtivo(true);
            
            //já que vai salvar, copia os dados para os originais
            Bean.copiarEndereco(enderecoTemp, endereco);
            Bean.copiarFuncionario(funcionarioTemp, funcionario);
            
            //atualiza ou salva o endereço
            if(operacao == 1) persisteEndereco.atualizar(endereco);
            else persisteEndereco.salvar(endereco);
            
            funcionario.setEndereco(endereco);
            //atualiza ou salva o funcionário
            if(operacao == 1){
                persisteFuncionario.atualizar(funcionario);
            }
            else {
                persisteFuncionario.salvar(funcionario);
                posicao = 1;
            }
            
            JOptionPane.showMessageDialog(null, "FUNCIONARIO SALVO COM SUCESSO");
            return true;
        }
        
        return false;
    }
    
    
    public CadastroFuncionario() {
        initComponents();
        inicializarTela();        
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        grupoAtivo = new javax.swing.ButtonGroup();
        jPanelPrincipal = new javax.swing.JPanel();
        jPanelFuncionario = new javax.swing.JPanel();
        jLabelNome = new javax.swing.JLabel();
        txtNome = new javax.swing.JTextField();
        jLabelEndereco = new javax.swing.JLabel();
        jLabelDtNascimento = new javax.swing.JLabel();
        jLabelCPF = new javax.swing.JLabel();
        jLabelTelefoneFixo = new javax.swing.JLabel();
        jLabelTelefoneCelular = new javax.swing.JLabel();
        jLabelTelefoneComercial = new javax.swing.JLabel();
        jLabelCEP = new javax.swing.JLabel();
        jLabelCidade = new javax.swing.JLabel();
        jLabelEmail = new javax.swing.JLabel();
        txtCPF = new javax.swing.JFormattedTextField();
        txtTelefoneFixo = new javax.swing.JFormattedTextField();
        txtTelefoneCelular = new javax.swing.JFormattedTextField();
        txtTelefoneComercial = new javax.swing.JFormattedTextField();
        txtCEP = new javax.swing.JFormattedTextField();
        txtCidade = new javax.swing.JTextField();
        txtEmail = new javax.swing.JTextField();
        jPanelEmpresariais = new javax.swing.JPanel();
        jTabDados = new javax.swing.JTabbedPane();
        jPanelDados = new javax.swing.JPanel();
        jLabelLogin = new javax.swing.JLabel();
        txtLogin = new javax.swing.JTextField();
        jLabelCargo = new javax.swing.JLabel();
        jComboCargo = new javax.swing.JComboBox();
        jLabelSalario = new javax.swing.JLabel();
        txtSalario = new javax.swing.JFormattedTextField();
        jLabelDtAdmissao = new javax.swing.JLabel();
        jLabelDtDemissao = new javax.swing.JLabel();
        jLabelPermissao = new javax.swing.JLabel();
        jComboPermissao = new javax.swing.JComboBox();
        jLabelSenha = new javax.swing.JLabel();
        txtSenha = new javax.swing.JPasswordField();
        jDateAdmissao = new com.toedter.calendar.JDateChooser();
        jDateDemissao = new com.toedter.calendar.JDateChooser();
        jLabel1 = new javax.swing.JLabel();
        txtRegistro = new javax.swing.JTextField();
        btnCargoNovo = new javax.swing.JButton();
        jLFuncionarioDesativado = new javax.swing.JLabel();
        jLCliqueAqui = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        txtObservacao = new javax.swing.JTextArea();
        jLabelRG = new javax.swing.JLabel();
        jDateNascimento = new com.toedter.calendar.JDateChooser();
        jLabelNumero = new javax.swing.JLabel();
        txtNumero = new javax.swing.JFormattedTextField();
        jLabelBairro = new javax.swing.JLabel();
        txtBairro = new javax.swing.JTextField();
        txtEndereco = new javax.swing.JTextField();
        jLabelCodigo = new javax.swing.JLabel();
        txtCodigo = new javax.swing.JTextField();
        txtRG = new javax.swing.JTextField();
        jPainelBotoes = new javax.swing.JPanel();
        btnNovo = new javax.swing.JButton();
        btnEditar = new javax.swing.JButton();
        btnExcluir = new javax.swing.JButton();
        btnPesquisar = new javax.swing.JButton();
        btnSalvar = new javax.swing.JButton();
        btnCancelar = new javax.swing.JButton();
        btnSair = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("ERP BEAUTY CENTER - Cadastro de Funcionarios");
        setMinimumSize(new java.awt.Dimension(0, 600));
        setPreferredSize(new java.awt.Dimension(800, 600));
        setResizable(false);
        addWindowFocusListener(new java.awt.event.WindowFocusListener() {
            public void windowGainedFocus(java.awt.event.WindowEvent evt) {
                formWindowGainedFocus(evt);
            }
            public void windowLostFocus(java.awt.event.WindowEvent evt) {
            }
        });
        getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        jPanelPrincipal.setBackground(new java.awt.Color(255, 255, 255));
        jPanelPrincipal.setPreferredSize(new java.awt.Dimension(800, 580));

        jPanelFuncionario.setBackground(new java.awt.Color(255, 255, 255));
        jPanelFuncionario.setPreferredSize(new java.awt.Dimension(800, 535));

        jLabelNome.setForeground(new java.awt.Color(51, 51, 255));
        jLabelNome.setText("NOME:");

        txtNome.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtNomeKeyPressed(evt);
            }
        });

        jLabelEndereco.setText("ENDEREÇO:");

        jLabelDtNascimento.setText("DATA NASCIMENTO:");

        jLabelCPF.setForeground(new java.awt.Color(51, 51, 255));
        jLabelCPF.setText("CPF:");

        jLabelTelefoneFixo.setText("TELEFONE FIXO:");

        jLabelTelefoneCelular.setText("TELEFONE CELULAR:");

        jLabelTelefoneComercial.setText("TELEFONE COMERCIAL:");

        jLabelCEP.setText("CEP:");

        jLabelCidade.setText("CIDADE:");

        jLabelEmail.setText("E-MAIL:");

        try {
            txtCPF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("###.###.###-##")));
        } catch (java.text.ParseException ex) {
            ex.printStackTrace();
        }
        txtCPF.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                txtCPFFocusLost(evt);
            }
        });
        txtCPF.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtCPFKeyPressed(evt);
            }
        });

        try {
            txtTelefoneFixo.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("(##)####-####")));
        } catch (java.text.ParseException ex) {
            ex.printStackTrace();
        }
        txtTelefoneFixo.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                txtTelefoneFixoFocusLost(evt);
            }
        });
        txtTelefoneFixo.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtTelefoneFixoKeyPressed(evt);
            }
        });

        try {
            txtTelefoneCelular.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("(##)####-####")));
        } catch (java.text.ParseException ex) {
            ex.printStackTrace();
        }
        txtTelefoneCelular.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                txtTelefoneCelularFocusLost(evt);
            }
        });
        txtTelefoneCelular.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtTelefoneCelularKeyPressed(evt);
            }
        });

        try {
            txtTelefoneComercial.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("(##)####-####")));
        } catch (java.text.ParseException ex) {
            ex.printStackTrace();
        }
        txtTelefoneComercial.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                txtTelefoneComercialFocusLost(evt);
            }
        });
        txtTelefoneComercial.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtTelefoneComercialKeyPressed(evt);
            }
        });

        try {
            txtCEP.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("##.###-###")));
        } catch (java.text.ParseException ex) {
            ex.printStackTrace();
        }
        txtCEP.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                txtCEPFocusLost(evt);
            }
        });
        txtCEP.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtCEPKeyPressed(evt);
            }
        });

        txtCidade.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txtCidadeActionPerformed(evt);
            }
        });
        txtCidade.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtCidadeKeyPressed(evt);
            }
        });

        jPanelEmpresariais.setBackground(new java.awt.Color(255, 255, 255));
        jPanelEmpresariais.setPreferredSize(new java.awt.Dimension(800, 300));
        jPanelEmpresariais.setRequestFocusEnabled(false);
        jPanelEmpresariais.setVerifyInputWhenFocusTarget(false);

        jTabDados.setBorder(javax.swing.BorderFactory.createEtchedBorder(new java.awt.Color(51, 51, 255), null));
        jTabDados.setPreferredSize(new java.awt.Dimension(785, 196));

        jPanelDados.setBackground(new java.awt.Color(255, 255, 255));

        jLabelLogin.setForeground(new java.awt.Color(51, 51, 255));
        jLabelLogin.setText("LOGIN:");

        txtLogin.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtLoginKeyPressed(evt);
            }
        });

        jLabelCargo.setForeground(new java.awt.Color(51, 51, 255));
        jLabelCargo.setText("CARGO:");

        jComboCargo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Selecione um cargo" }));
        jComboCargo.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                jComboCargoItemStateChanged(evt);
            }
        });

        jLabelSalario.setText("SALARIO:");

        txtSalario.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter(new java.text.DecimalFormat("#0.00"))));
        txtSalario.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txtSalarioActionPerformed(evt);
            }
        });
        txtSalario.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                txtSalarioFocusLost(evt);
            }
        });
        txtSalario.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtSalarioKeyPressed(evt);
            }
        });

        jLabelDtAdmissao.setText("DATA ADMISSÃO:");

        jLabelDtDemissao.setText("DATA DEMISSÃO:");

        jLabelPermissao.setForeground(new java.awt.Color(51, 51, 255));
        jLabelPermissao.setText("PERMISSÃO:");

        jComboPermissao.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "1", "2", "3", "4" }));

        jLabelSenha.setForeground(new java.awt.Color(51, 51, 255));
        jLabelSenha.setText("SENHA:");

        txtSenha.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtSenhaKeyPressed(evt);
            }
        });

        jDateAdmissao.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jDateAdmissaoKeyPressed(evt);
            }
        });

        jDateDemissao.setEnabled(false);

        jLabel1.setText("REGISTRO:");

        txtRegistro.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtRegistroKeyPressed(evt);
            }
        });

        btnCargoNovo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/beautycenter/img/novoCargo.png"))); // NOI18N
        btnCargoNovo.setToolTipText("NOVO CARGO");
        btnCargoNovo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnCargoNovoActionPerformed(evt);
            }
        });

        jLFuncionarioDesativado.setForeground(new java.awt.Color(255, 51, 51));
        jLFuncionarioDesativado.setText("Funcionário desativado. Para ativá-lo, ");

        jLCliqueAqui.setForeground(new java.awt.Color(0, 51, 153));
        jLCliqueAqui.setText("clique aqui.");
        jLCliqueAqui.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
        jLCliqueAqui.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jLCliqueAquiMouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanelDadosLayout = new javax.swing.GroupLayout(jPanelDados);
        jPanelDados.setLayout(jPanelDadosLayout);
        jPanelDadosLayout.setHorizontalGroup(
            jPanelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelDadosLayout.createSequentialGroup()
                .addGroup(jPanelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanelDadosLayout.createSequentialGroup()
                        .addGroup(jPanelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanelDadosLayout.createSequentialGroup()
                                .addGroup(jPanelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(jPanelDadosLayout.createSequentialGroup()
                                        .addGap(95, 95, 95)
                                        .addComponent(jLabelLogin)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(txtLogin, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanelDadosLayout.createSequentialGroup()
                                        .addGap(42, 42, 42)
                                        .addGroup(jPanelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                            .addComponent(jLabel1)
                                            .addComponent(jLabelDtAdmissao))
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addGroup(jPanelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addComponent(txtRegistro, javax.swing.GroupLayout.PREFERRED_SIZE, 103, javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addComponent(jDateAdmissao, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addGroup(jPanelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jLabelSenha, javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addComponent(jLabelSalario, javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addComponent(jLabelDtDemissao, javax.swing.GroupLayout.Alignment.TRAILING)))
                            .addGroup(jPanelDadosLayout.createSequentialGroup()
                                .addGap(68, 68, 68)
                                .addGroup(jPanelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(jPanelDadosLayout.createSequentialGroup()
                                        .addGap(66, 66, 66)
                                        .addComponent(jComboPermissao, javax.swing.GroupLayout.PREFERRED_SIZE, 61, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanelDadosLayout.createSequentialGroup()
                                        .addGroup(jPanelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                            .addComponent(jLabelCargo)
                                            .addComponent(jLabelPermissao))
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jComboCargo, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)))))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(btnCargoNovo, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(txtSenha, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(txtSalario, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jDateDemissao, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(jPanelDadosLayout.createSequentialGroup()
                        .addGap(180, 180, 180)
                        .addComponent(jLFuncionarioDesativado)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLCliqueAqui)))
                .addGap(74, 326, Short.MAX_VALUE))
        );
        jPanelDadosLayout.setVerticalGroup(
            jPanelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelDadosLayout.createSequentialGroup()
                .addGap(28, 28, 28)
                .addGroup(jPanelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabelLogin)
                    .addComponent(txtLogin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabelSenha)
                    .addComponent(txtSenha, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabelSalario)
                    .addComponent(txtSalario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel1)
                    .addComponent(txtRegistro, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(3, 3, 3)
                .addGroup(jPanelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jDateAdmissao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jDateDemissao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabelDtAdmissao, javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jLabelDtDemissao, javax.swing.GroupLayout.Alignment.TRAILING))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabelPermissao)
                    .addComponent(jComboPermissao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(jPanelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabelCargo)
                        .addComponent(jComboCargo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(btnCargoNovo, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(43, 43, 43)
                .addGroup(jPanelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLFuncionarioDesativado)
                    .addComponent(jLCliqueAqui))
                .addContainerGap(50, Short.MAX_VALUE))
        );

        jTabDados.addTab("Dados", jPanelDados);

        txtObservacao.setColumns(20);
        txtObservacao.setRows(5);
        jScrollPane1.setViewportView(txtObservacao);

        jTabDados.addTab("Observação", jScrollPane1);

        javax.swing.GroupLayout jPanelEmpresariaisLayout = new javax.swing.GroupLayout(jPanelEmpresariais);
        jPanelEmpresariais.setLayout(jPanelEmpresariaisLayout);
        jPanelEmpresariaisLayout.setHorizontalGroup(
            jPanelEmpresariaisLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelEmpresariaisLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jTabDados, javax.swing.GroupLayout.PREFERRED_SIZE, 775, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(15, Short.MAX_VALUE))
        );
        jPanelEmpresariaisLayout.setVerticalGroup(
            jPanelEmpresariaisLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelEmpresariaisLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jTabDados, javax.swing.GroupLayout.DEFAULT_SIZE, 289, Short.MAX_VALUE)
                .addContainerGap())
        );

        jLabelRG.setText("RG:");

        jDateNascimento.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jDateNascimentoKeyPressed(evt);
            }
        });

        jLabelNumero.setText("Nº");

        txtNumero.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter(new java.text.DecimalFormat("#0"))));
        txtNumero.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                txtNumeroFocusLost(evt);
            }
        });
        txtNumero.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtNumeroKeyPressed(evt);
            }
        });

        jLabelBairro.setText("BAIRRO");

        txtBairro.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtBairroKeyPressed(evt);
            }
        });

        txtEndereco.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtEnderecoKeyPressed(evt);
            }
        });

        jLabelCodigo.setText("CÓDIGO");

        txtCodigo.setEnabled(false);

        txtRG.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtRGKeyPressed(evt);
            }
        });

        javax.swing.GroupLayout jPanelFuncionarioLayout = new javax.swing.GroupLayout(jPanelFuncionario);
        jPanelFuncionario.setLayout(jPanelFuncionarioLayout);
        jPanelFuncionarioLayout.setHorizontalGroup(
            jPanelFuncionarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanelEmpresariais, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addGroup(jPanelFuncionarioLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(jPanelFuncionarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jLabelCodigo)
                    .addComponent(jLabelNome)
                    .addComponent(jLabelDtNascimento)
                    .addComponent(jLabelEndereco)
                    .addComponent(jLabelTelefoneFixo)
                    .addComponent(jLabelCidade)
                    .addComponent(jLabelEmail))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanelFuncionarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanelFuncionarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                        .addComponent(txtEmail, javax.swing.GroupLayout.PREFERRED_SIZE, 300, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGroup(jPanelFuncionarioLayout.createSequentialGroup()
                            .addComponent(jDateNascimento, javax.swing.GroupLayout.PREFERRED_SIZE, 119, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(jLabelCPF)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(txtCPF, javax.swing.GroupLayout.PREFERRED_SIZE, 102, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(jLabelRG)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(txtRG, javax.swing.GroupLayout.PREFERRED_SIZE, 111, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addComponent(txtCodigo, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGroup(jPanelFuncionarioLayout.createSequentialGroup()
                            .addComponent(txtCidade, javax.swing.GroupLayout.PREFERRED_SIZE, 300, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(jLabelBairro)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(txtBairro, javax.swing.GroupLayout.DEFAULT_SIZE, 224, Short.MAX_VALUE))
                        .addGroup(jPanelFuncionarioLayout.createSequentialGroup()
                            .addGroup(jPanelFuncionarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                .addComponent(txtEndereco, javax.swing.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
                                .addComponent(txtNome))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(jLabelNumero)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(txtNumero, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(jLabelCEP)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(txtCEP, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(jPanelFuncionarioLayout.createSequentialGroup()
                        .addComponent(txtTelefoneFixo, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabelTelefoneCelular)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(txtTelefoneCelular, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabelTelefoneComercial)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(txtTelefoneComercial, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGap(81, 81, 81))
        );
        jPanelFuncionarioLayout.setVerticalGroup(
            jPanelFuncionarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelFuncionarioLayout.createSequentialGroup()
                .addGap(8, 8, 8)
                .addGroup(jPanelFuncionarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabelCodigo)
                    .addComponent(txtCodigo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanelFuncionarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(jPanelFuncionarioLayout.createSequentialGroup()
                        .addGroup(jPanelFuncionarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabelNome)
                            .addComponent(txtNome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanelFuncionarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabelEndereco, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(txtEndereco, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabelNumero)
                            .addComponent(txtNumero, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabelCEP)
                            .addComponent(txtCEP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanelFuncionarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabelCidade)
                            .addComponent(txtCidade, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabelBairro)
                            .addComponent(txtBairro, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanelFuncionarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jLabelDtNascimento)
                            .addComponent(jDateNascimento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(jPanelFuncionarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(txtCPF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jLabelCPF)
                        .addComponent(jLabelRG)
                        .addComponent(txtRG, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanelFuncionarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabelTelefoneFixo)
                    .addComponent(txtTelefoneFixo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabelTelefoneCelular)
                    .addComponent(txtTelefoneCelular, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabelTelefoneComercial)
                    .addComponent(txtTelefoneComercial, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanelFuncionarioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabelEmail)
                    .addComponent(txtEmail, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanelEmpresariais, javax.swing.GroupLayout.PREFERRED_SIZE, 311, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(34, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout jPanelPrincipalLayout = new javax.swing.GroupLayout(jPanelPrincipal);
        jPanelPrincipal.setLayout(jPanelPrincipalLayout);
        jPanelPrincipalLayout.setHorizontalGroup(
            jPanelPrincipalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelPrincipalLayout.createSequentialGroup()
                .addComponent(jPanelFuncionario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(0, 0, Short.MAX_VALUE))
        );
        jPanelPrincipalLayout.setVerticalGroup(
            jPanelPrincipalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelPrincipalLayout.createSequentialGroup()
                .addComponent(jPanelFuncionario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(0, 0, Short.MAX_VALUE))
        );

        jPanelFuncionario.getAccessibleContext().setAccessibleParent(this);

        getContentPane().add(jPanelPrincipal, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 50, -1, 530));

        jPainelBotoes.setPreferredSize(new java.awt.Dimension(800, 45));

        btnNovo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/beautycenter/img/Novo.png"))); // NOI18N
        btnNovo.setToolTipText("NOVO");
        btnNovo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnNovoActionPerformed(evt);
            }
        });

        btnEditar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/beautycenter/img/Editar.png"))); // NOI18N
        btnEditar.setToolTipText("ALTERAR");
        btnEditar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnEditarActionPerformed(evt);
            }
        });

        btnExcluir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/beautycenter/img/Excluir.png"))); // NOI18N
        btnExcluir.setToolTipText("EXCLUIR");
        btnExcluir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnExcluirActionPerformed(evt);
            }
        });

        btnPesquisar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/beautycenter/img/Pesquisar.png"))); // NOI18N
        btnPesquisar.setToolTipText("PESQUISAR");
        btnPesquisar.setBorderPainted(false);
        btnPesquisar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnPesquisarActionPerformed(evt);
            }
        });

        btnSalvar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/beautycenter/img/Salvar.png"))); // NOI18N
        btnSalvar.setToolTipText("SALVAR");
        btnSalvar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnSalvarActionPerformed(evt);
            }
        });

        btnCancelar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/beautycenter/img/Cancelar.png"))); // NOI18N
        btnCancelar.setToolTipText("LIMPAR");
        btnCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnCancelarActionPerformed(evt);
            }
        });

        btnSair.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/beautycenter/img/Sair.png"))); // NOI18N
        btnSair.setToolTipText("SAIR");
        btnSair.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnSairActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPainelBotoesLayout = new javax.swing.GroupLayout(jPainelBotoes);
        jPainelBotoes.setLayout(jPainelBotoesLayout);
        jPainelBotoesLayout.setHorizontalGroup(
            jPainelBotoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPainelBotoesLayout.createSequentialGroup()
                .addGap(155, 155, 155)
                .addComponent(btnNovo)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(btnEditar)
                .addGap(5, 5, 5)
                .addComponent(btnExcluir)
                .addGap(5, 5, 5)
                .addComponent(btnPesquisar)
                .addGap(5, 5, 5)
                .addComponent(btnSalvar)
                .addGap(5, 5, 5)
                .addComponent(btnCancelar)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(btnSair))
        );
        jPainelBotoesLayout.setVerticalGroup(
            jPainelBotoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPainelBotoesLayout.createSequentialGroup()
                .addGroup(jPainelBotoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(btnEditar)
                    .addComponent(btnExcluir)
                    .addComponent(btnPesquisar)
                    .addComponent(btnSalvar)
                    .addComponent(btnCancelar)
                    .addGroup(jPainelBotoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(btnSair, javax.swing.GroupLayout.Alignment.TRAILING)
                        .addComponent(btnNovo)))
                .addContainerGap())
        );

        getContentPane().add(jPainelBotoes, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, -1, -1));

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void txtCidadeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtCidadeActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_txtCidadeActionPerformed

    private void txtSalarioActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtSalarioActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_txtSalarioActionPerformed

    private void btnSalvarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSalvarActionPerformed
        if(preencherFuncionario()){
            inicializarTela();
        }
    }//GEN-LAST:event_btnSalvarActionPerformed

    private void txtCEPFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtCEPFocusLost
        Swing.limparCamposFormatados(txtCEP);
    }//GEN-LAST:event_txtCEPFocusLost

    private void txtNumeroFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtNumeroFocusLost
        Swing.limparCamposFormatados(txtNumero, true);
        
    }//GEN-LAST:event_txtNumeroFocusLost

    private void txtCPFFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtCPFFocusLost
        Swing.limparCamposFormatados(txtCPF);
    }//GEN-LAST:event_txtCPFFocusLost

    private void txtTelefoneFixoFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtTelefoneFixoFocusLost
        Swing.limparCamposFormatados(txtTelefoneFixo);
    }//GEN-LAST:event_txtTelefoneFixoFocusLost

    private void txtTelefoneCelularFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtTelefoneCelularFocusLost
        Swing.limparCamposFormatados(txtTelefoneCelular);
    }//GEN-LAST:event_txtTelefoneCelularFocusLost

    private void txtTelefoneComercialFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtTelefoneComercialFocusLost
        Swing.limparCamposFormatados(txtTelefoneComercial);
    }//GEN-LAST:event_txtTelefoneComercialFocusLost

    private void txtSalarioFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtSalarioFocusLost
        Swing.limparCamposFormatados(txtSalario, true);
    }//GEN-LAST:event_txtSalarioFocusLost

    private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelarActionPerformed
        cancelar();
    }//GEN-LAST:event_btnCancelarActionPerformed

    private void btnPesquisarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnPesquisarActionPerformed
        PesquisarFuncionario pesquisarFuncionario = new PesquisarFuncionario(this, true);
        pesquisarFuncionario.setLocationRelativeTo(null);
        pesquisarFuncionario.setVisible(true);
        
        ativarBotoesIniciar();
        
    }//GEN-LAST:event_btnPesquisarActionPerformed

    private void btnSairActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSairActionPerformed
        dispose();
    }//GEN-LAST:event_btnSairActionPerformed

    private void btnNovoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnNovoActionPerformed
        novo();
    }//GEN-LAST:event_btnNovoActionPerformed

    private void btnEditarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnEditarActionPerformed
        editar();
    }//GEN-LAST:event_btnEditarActionPerformed

    private void btnExcluirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExcluirActionPerformed
        excluir();
    }//GEN-LAST:event_btnExcluirActionPerformed

    private void jComboCargoItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_jComboCargoItemStateChanged
        if(jComboCargo.getItemCount() > 0){
            txtRegistro.setEnabled(true);
        }else {
            txtRegistro.setEnabled(false);
        }
    }//GEN-LAST:event_jComboCargoItemStateChanged

    private void btnCargoNovoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCargoNovoActionPerformed
       CadastroCargo cadastroCargo = new CadastroCargo();
       cadastroCargo.setLocationRelativeTo(null);
       cadastroCargo.setVisible(true);   
    }//GEN-LAST:event_btnCargoNovoActionPerformed

    private void formWindowGainedFocus(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowGainedFocus
        preencherComboCargo();
    }//GEN-LAST:event_formWindowGainedFocus

    private void jLCliqueAquiMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLCliqueAquiMouseClicked
        jDateDemissao.setDate(null);
        jDateDemissao.setEnabled(false);
        listaFuncionarios.get(posicao).setAtivo(true);
        mudouAtivo = true;
    }//GEN-LAST:event_jLCliqueAquiMouseClicked

    private void txtNomeKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtNomeKeyPressed
         if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             txtEndereco.requestFocus();
         }
    }//GEN-LAST:event_txtNomeKeyPressed

    private void txtEnderecoKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtEnderecoKeyPressed
         if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             txtNumero.requestFocus();
         }
    }//GEN-LAST:event_txtEnderecoKeyPressed

    private void txtNumeroKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtNumeroKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             txtCEP.requestFocus();
         }
    }//GEN-LAST:event_txtNumeroKeyPressed

    private void txtCEPKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtCEPKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             txtCidade.requestFocus();
         }
    }//GEN-LAST:event_txtCEPKeyPressed

    private void txtCidadeKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtCidadeKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             txtBairro.requestFocus();
         }
    }//GEN-LAST:event_txtCidadeKeyPressed

    private void txtBairroKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtBairroKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
            jDateNascimento.requestFocus();
         }
    }//GEN-LAST:event_txtBairroKeyPressed

    private void jDateNascimentoKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jDateNascimentoKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             txtCPF.requestFocus();
         }
    }//GEN-LAST:event_jDateNascimentoKeyPressed

    private void txtCPFKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtCPFKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             txtRG.requestFocus();
         }
    }//GEN-LAST:event_txtCPFKeyPressed

    private void txtRGKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtRGKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             txtTelefoneFixo.requestFocus();
         }
    }//GEN-LAST:event_txtRGKeyPressed

    private void txtTelefoneFixoKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtTelefoneFixoKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             txtTelefoneCelular.requestFocus();
         }
    }//GEN-LAST:event_txtTelefoneFixoKeyPressed

    private void txtTelefoneCelularKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtTelefoneCelularKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             txtTelefoneComercial.requestFocus();
         }
    }//GEN-LAST:event_txtTelefoneCelularKeyPressed

    private void txtTelefoneComercialKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtTelefoneComercialKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             txtEmail.requestFocus();
         }
    }//GEN-LAST:event_txtTelefoneComercialKeyPressed

    private void txtLoginKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtLoginKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             txtSenha.requestFocus();
         }
    }//GEN-LAST:event_txtLoginKeyPressed

    private void txtSenhaKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtSenhaKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             txtRegistro.requestFocus();
         }
    }//GEN-LAST:event_txtSenhaKeyPressed

    private void txtRegistroKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtRegistroKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             txtSalario.requestFocus();
         }
    }//GEN-LAST:event_txtRegistroKeyPressed

    private void txtSalarioKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtSalarioKeyPressed
       if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             jDateAdmissao.requestFocus();
         }
    }//GEN-LAST:event_txtSalarioKeyPressed

    private void jDateAdmissaoKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jDateAdmissaoKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             jDateDemissao.requestFocus();
         }
    }//GEN-LAST:event_jDateAdmissaoKeyPressed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btnCancelar;
    private javax.swing.JButton btnCargoNovo;
    private javax.swing.JButton btnEditar;
    private javax.swing.JButton btnExcluir;
    private javax.swing.JButton btnNovo;
    private javax.swing.JButton btnPesquisar;
    private javax.swing.JButton btnSair;
    private javax.swing.JButton btnSalvar;
    private javax.swing.ButtonGroup grupoAtivo;
    private javax.swing.JComboBox jComboCargo;
    private javax.swing.JComboBox jComboPermissao;
    private com.toedter.calendar.JDateChooser jDateAdmissao;
    private com.toedter.calendar.JDateChooser jDateDemissao;
    private com.toedter.calendar.JDateChooser jDateNascimento;
    private javax.swing.JLabel jLCliqueAqui;
    private javax.swing.JLabel jLFuncionarioDesativado;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabelBairro;
    private javax.swing.JLabel jLabelCEP;
    private javax.swing.JLabel jLabelCPF;
    private javax.swing.JLabel jLabelCargo;
    private javax.swing.JLabel jLabelCidade;
    private javax.swing.JLabel jLabelCodigo;
    private javax.swing.JLabel jLabelDtAdmissao;
    private javax.swing.JLabel jLabelDtDemissao;
    private javax.swing.JLabel jLabelDtNascimento;
    private javax.swing.JLabel jLabelEmail;
    private javax.swing.JLabel jLabelEndereco;
    private javax.swing.JLabel jLabelLogin;
    private javax.swing.JLabel jLabelNome;
    private javax.swing.JLabel jLabelNumero;
    private javax.swing.JLabel jLabelPermissao;
    private javax.swing.JLabel jLabelRG;
    private javax.swing.JLabel jLabelSalario;
    private javax.swing.JLabel jLabelSenha;
    private javax.swing.JLabel jLabelTelefoneCelular;
    private javax.swing.JLabel jLabelTelefoneComercial;
    private javax.swing.JLabel jLabelTelefoneFixo;
    private javax.swing.JPanel jPainelBotoes;
    private javax.swing.JPanel jPanelDados;
    private javax.swing.JPanel jPanelEmpresariais;
    private javax.swing.JPanel jPanelFuncionario;
    private javax.swing.JPanel jPanelPrincipal;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTabbedPane jTabDados;
    private javax.swing.JTextField txtBairro;
    private javax.swing.JFormattedTextField txtCEP;
    private javax.swing.JFormattedTextField txtCPF;
    private javax.swing.JTextField txtCidade;
    private javax.swing.JTextField txtCodigo;
    private javax.swing.JTextField txtEmail;
    private javax.swing.JTextField txtEndereco;
    private javax.swing.JTextField txtLogin;
    private javax.swing.JTextField txtNome;
    private javax.swing.JFormattedTextField txtNumero;
    private javax.swing.JTextArea txtObservacao;
    private javax.swing.JTextField txtRG;
    private javax.swing.JTextField txtRegistro;
    private javax.swing.JFormattedTextField txtSalario;
    private javax.swing.JPasswordField txtSenha;
    private javax.swing.JFormattedTextField txtTelefoneCelular;
    private javax.swing.JFormattedTextField txtTelefoneComercial;
    private javax.swing.JFormattedTextField txtTelefoneFixo;
    // End of variables declaration//GEN-END:variables
}